package com.hspedu.array_;

import java.util.Arrays;
import java.util.List;

/**
 * @author DL5O
 * @version 1.0
 */
public class ArraysMethod02 {
    public static void main(String[] args) {
        Integer[] arr = {1, 2, 3, 4, 5, 6, 7, 8};
        //1.使用 binarySearch 二叉查找
        //2.要求该数组的有序的，可以从小到大也可以是从大到下
        //3.如果数组中不存在该元素，就返回 return -(low + 1);
        //  这个low 是指改数 本来应该在的索引位置
        //注意：
        //  如果是无序的则不能使用
        int index = Arrays.binarySearch(arr, 568);
        System.out.println("index=" + index);

        //copyOf 数组元素复制
        //1.从 arr 数组中，拷贝 arr.length个元素到 newArr数组中
        //2.如果拷贝的长度 > arr.length,那么多的元素就 赋为空，null
        //3.如果拷贝的长度 < 0 就返回异常 NegativeArraySizeException
        Integer[] newArr = Arrays.copyOf(arr, arr.length - 1);
        System.out.println("====新数组====");
        System.out.println(Arrays.toString(newArr));

        //ill 数组元素的填充
        //使用99 去填充 num数组，可以理解是替换原来数组中的所有元素
        Integer[] num = new Integer[]{9, 3, 2};
        Arrays.fill(num, 99);
        System.out.println("====填充过后====");
        System.out.println(Arrays.toString(num));

        boolean equals = Arrays.equals(arr,num);
        System.out.println(equals);//false

        //asList 将一组值，转换成list
        //1.asList 方法，会将(1,2,3,4,5,6,7)数据转成一个List集合
        //2.返回 asList的编译类型 List(接口)
        //3.asList运行类型 java.util.Arrays$ArrayList,是Arrays类的静态内部类
        //List 是一个接口
        List asList = Arrays.asList(arr);
        System.out.println("asList=" + asList);//asList=[1, 2, 3, 4, 5, 6, 7, 8]
        //将数据转成一个list集合
        System.out.println("asList的运行类型" + asList.getClass());
    }
}
